-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2023-06-17 23:59:37

local 场景类_分区 = class()
local tp
local insert = table.insert

function 场景类_分区:初始化(根)
  local 资源 = 根.资源
  self.标题背景 = 资源:载入('MAX.7z',"网易WDF动画","服务器").精灵--899E213B
  self.右边分区1 = 资源:载入('JM.dll',"网易WDF动画",0x0E3A7EE6)
  self.右边分区2 = 资源:载入('JM.dll',"网易WDF动画",0xFB057B3D)--红色动态
  self.标题1 = 资源:载入('MAX.7z',"网易WDF动画","选择服务器").精灵
  self.大分区 = 资源:载入('JM.dll',"网易WDF动画",0xD330CE3F)
  self.大分区选中 = 资源:载入('JM.dll',"网易WDF动画",0xF5674AFF)
  self.小分区= 资源:载入('JM.dll',"网易WDF动画",0xBD57A592)
  self.红线= 资源:载入('MAX.7z',"网易WDF动画","红线").精灵
  self.进入游戏 = 根._按钮(资源:载入('JM.dll',"网易WDF动画",0x0A247197),0,0,3,true,true)
  self.上一步 = 根._按钮(资源:载入('MAX.7z',"网易WDF动画",00010009),0,0,3,true,true)
  self.退出游戏 =根._按钮(资源:载入('MAX.7z',"网易WDF动画",00010002),0,0,3,true,true)
  tp = 根
  local 按钮 = 根._按钮
  local 自适应 = 根._自适应
  self.临时计次O=0
  self.大分区按钮事件 = 0
  self.小分区按钮事件 = 0
  local file1=self:分区内容()
  local servertype = 分割文本(file1, "\n")
  self.大分区OL = {  }
  self.小分区OL = {  }
  self.大分区分类 = {  }
  self.小分区分类 = {  }
  self.小分区分类背景 = {  }
  for n = 1, #servertype do
    local typeA = 分割文本(servertype[n], " ")
   
    if #typeA == 4 then
        n = 按钮.创建(自适应.创建(51,4,65,22,1,3),0,0,4,true,true,typeA[4])
        insert(self.大分区OL,n)
        n={tonumber(typeA[1]),tonumber(typeA[2]),tonumber(typeA[3]),typeA[4]}
        insert(self.大分区分类,n)

    elseif #typeA == 18 then--梦幻官方
        n = 按钮.创建(自适应.创建(52,4,65,22,1,3),0,0,4,true,true,typeA[4])
        insert(self.小分区OL,n)
        n={tonumber(typeA[1]),tonumber(typeA[2]),tonumber(typeA[3]),typeA[4],typeA[5],tonumber(typeA[6])}
        insert(self.小分区分类,n)
        n=资源:载入('JM.dll',"网易WDF动画",0xBD57A592)
        insert(self.小分区分类背景,n)
    end
  end
  self.服务器数据={}
  for n=1,#self.小分区分类 do
    self.服务器数据[n]={mc=self.小分区分类[n][4],状态=1,x=0,y=0,背景=0,ip=self.小分区分类[n][5],dk=self.小分区分类[n][6]}
  end
end

function 场景类_分区:显示(dt,x,y)
  if tp.进程 == 2 then
    引擎.置标题(全局游戏标题.."- 请选择分区")
    self.上一步:更新(x,y)
    self.右边分区1:更新(x,y)
    for n = 1, #self.大分区OL do
      self.大分区OL[n]:更新(x,y)
    end
    for n = 1, #self.小分区OL do
      self.小分区OL[n]:更新(x,y)
    end
        self.临时计次O=self.临时计次O+1
        if self.临时计次O==6 then
            self.右边分区2:更新(x,y)
            self.临时计次O=0
        end
    self.退出游戏:更新(x,y)
    if self.进入游戏:事件判断() then
      引擎.置新标题(全局游戏标题)
      tp.进程 = 3
    elseif self.上一步:事件判断() then
      tp.进程 = 1
    elseif self.退出游戏:事件判断() then
      引擎.关闭()
      return false
    end
        local msgq宽度 = 全局登陆宽度/2-250--200
        local msgq高度 = 全局登陆高度/2-200--200
        self.右边分区1:显示(msgq宽度*2+325,msgq高度+50)
        self.右边分区2:显示(msgq宽度*2+340,msgq高度+230)

    self.标题背景:显示(msgq宽度-84,msgq高度+41)
    self.标题1:显示(msgq宽度+80,msgq高度-10)
    self.上一步:显示(全局登陆宽度-190,全局登陆高度-130)
    self.退出游戏:显示(全局登陆宽度-190,全局登陆高度-70)
    for n = 1, #self.大分区OL do
      if self.大分区OL[n]:事件判断() then
           self.大分区按钮事件 = n
           全局大分区 = self.大分区分类[n][4]
            end
    end

    local msgq列 = 1
    for n = 1, #self.大分区OL do
      msgq行=服务区取行(n)
      if self.大分区按钮事件==n then

          self.大分区选中:显示(全局登陆宽度/2-388+msgq列*71,全局登陆高度/2-172+msgq行*28)
      end
      self.大分区OL[n]:置偏移(-3,0)
      self.大分区OL[n]:显示(全局登陆宽度/2-388+msgq列*71,全局登陆高度/2-171+msgq行*28,nil,nil,nil,self.大分区按钮事件==n,2)
      if msgq列 ~=7 then
          msgq列 = msgq列 +1
      elseif msgq列 ==7  then
        msgq列 = 1
      end
    end
    local msgq行 = 1
    local msgq列 = 1
    for n = 1, #self.小分区OL do
            if self.大分区按钮事件 == math.ceil(self.小分区分类[n][1]) and self.大分区按钮事件 ~= 0 then
          self.小分区OL[n]:置偏移(-3,0)
          self.小分区OL[n]:显示(全局登陆宽度/2-388+msgq列*71,全局登陆高度/2+117+msgq行*28,nil,122)
          self.红线:显示(全局登陆宽度/2-383+msgq列*71,全局登陆高度/2+137+msgq行*28,nil,122)

          if msgq列 ~=7 then
              msgq列 = msgq列 +1
          elseif msgq列 ==7  then
            msgq列 = 1
            msgq行=msgq行+1
          end
            end
    end
    for n = 1, #self.小分区OL do
      if self.小分区OL[n]:事件判断() then
           self.小分区按钮事件 = n
           if self.大分区按钮事件 == math.ceil(self.小分区分类[n][1]) and self.小分区分类[n][4]~="" then
                self.服务器编号=math.ceil(self.小分区分类[n][1])
                self.服务器数据[self.服务器编号].名称=self.小分区分类[n][4]
              窗口标题.服务器 = self.服务器数据[self.服务器编号].mc
              引擎.置标题(全局游戏标题 .. " - " .. 窗口标题.服务器 )
              tp.进程 = 3
              tp.登入.zhsr:置文本(读配置(程序目录..[[配置.ini]],"账号信息","账号"))
              tp.登入.mmsr:置文本(读配置(程序目录..[[配置.ini]],"账号信息","密码"))
              if 低配模式 then
                tp.提示:写入("#Y/你已经开启了低配模式,开启后降低内存使用,关闭各种特效,光环锦衣等")
              end
           end
        end
    end
  end
end

function 服务区取行(n)
  local msgq行 = 1
  if n<=7  then
    msgq行=1
  elseif n<=14 then
    msgq行=2
  elseif n<=21 then
    msgq行=3
  elseif n<=28 then
    msgq行=4
  elseif n<=35  then
    msgq行=5
  elseif n<=42 then
    msgq行=6
  elseif n<=49  then
    msgq行=7
  elseif n<=56  then
    msgq行=8
  elseif n<=63 then
    msgq行=9
  elseif n<=70  then
    msgq行=10
  end
  return msgq行
end



function 场景类_分区:分区内容()
local x返回 =[[
-1 7 7 开发测试
-2 7 7 守护九宠
1 1 1 开发测试 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022
2 2 1 守护九宠 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022
3 3 1 缘聚唐城 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022
4 4 1 渤海明珠 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022
5 5 1 开发测试 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022
6 6 1 梦幻试玩 127.0.0.1 9098 0 127.0.0.1 9098 0 127.0.0.1 9098 0 0 欢迎进入梦幻西游 0 0 2022]]
  return x返回
end

return 场景类_分区


--5 3 1 开发测试 223.252.201.112 10656 4 223.252.201.112 10656 4 223.252.201.112 10656 4 0 欢迎进入梦幻西游 132 0 200403051200

